package com.levy.contronller.javase.designModel.memento;

/**
 * 类似场景  游戏闯关 先保存进度 后面如果没血死了 可以随时还原
 *
 * 备忘录模式
 * 如果一个对象需要保存状态
 * 并且可以通过撤销或者回滚的操作回到以前的状态
 * 使用备忘录模式
 */
public class MainClass {


    public static void main(String[] args) {
        Person per = new Person("jack","男",18);



        //mementor  仅仅保存状态
//        Memento memento = per.createMemento();

        //通过管理者设置mementor
        CareTaker careTaker = new CareTaker();
        careTaker.setMemento(per.createMemento());

        System.out.println("修改前的对象"+per);

        //修改
        per.setAge(80);
        per.setSex("女");
        System.out.println("修改后的对象"+per);

        //回滚
        per.setMemento(careTaker.getMemento());

        System.out.println("修改后的回滚"+per);


    }
}
